package tfts

func ezOuput(s string) (string, func(fight *Fight)) {
	i := 0
	f := func(fight *Fight) {
		i++
		TraceLog("%4.1f秒:触发[%s]效果%d次\n", fight.Current(), s, i)
	}
	return "", f
}

func (f *Fight) ghostly() *action {
	a := NewAction(f, UnqAmp(10)).Stack(5).On(AttackE)
	if f.isFighter() {
		// 每秒挨打一次
		a.On(TimeGoE)
		a.Heal = "2*hp"
	}
	a.TraceAction("幽魂")
	return a
}

func (f *Fight) disco() *action {
	a := NewAction(f, AS(5)).Stack(3).On(TimeGoE)
	a.Heal = "2*hp"
	a.TraceAction("Disco")
	return a
}

func (f *Fight) rebel() *action {
	a := NewAction(f).Once(5).On(TimeGoE)
	a.buff = NewBuff(TimeGoE, 5, AS(50))
	a.TraceAction("Rebel")
	return a
}

func (f *Fight) shadowIsles() *action {
	a := NewAction(f).Once(8).On(TimeGoE).On(AttackE).On(BeforeCastE)
	a.Shield = "40*hp"
	a.AddCall("ShadowIsles", func(fight *Fight) {
		aa := NewAction(fight).Repeat(1).On(TimeGoE)
		aa.AddCall("Spectral", func(fight *Fight) {
			f.mana += 5
		})
	})
	return a
}

func (f *Fight) shurima() *action {
	a := NewAction(f).Repeat(4).On(TimeGoE)
	a.Heal = "5*hp"
	a.TraceAction("Shurima")
	aa := NewAction(f, AS(45)).Once(8).On(TimeGoE)
	aa.TraceAction("Ascend")
	aa.Grow = "30*hp"
	return a
}
